package com.zhugang.week01;

/**
 * @program algorithms
 * @description: palindromeNumber
 * @author: chanzhugang
 * @create: 2022/05/22 17:14
 */
public class PalindromeNumber {

    public static void main(String[] args) {
        PalindromeNumber palindromeNumber = new PalindromeNumber();
        boolean flag = palindromeNumber.isPalindrome(121);
        System.out.println(flag);
    }

    /**
     * 9.回文数
     *
     * @param x
     * @return
     */
    public boolean isPalindrome(int x) {
        // 数学
        if (x < 0) {
            return false;
        }
        int cur = 0;
        int num = x;
        while (num != 0) {
            cur = cur * 10 + num % 10;
            num = num / 10;
        }
        return cur == x;
    }

    public boolean isPalindrome2(int x) {
        // 数字转成字符串， 前后比较（遍历至一半）
        if (x < 0) {
            return false;
        }
        int[] digits = new int[10];
        int k = 0;
        while (x != 0) {
            // 数字转成字符串（数字转成数组，翻转，如123 -> [3,2,1]）
            digits[k] = x % 10;
            x = x / 10;
            k++;
        }
        for (int i = 0; i < k / 2; i++) {
            if (digits[i] != digits[k - i - 1]) {
                return false;
            }
        }
        return true;
    }
}